vytvareni framu, nebo formu procedurou
Otázka od: delphi@mjsoft.cz
2. 9. 2004 13:20
Zdravim,
lze udelat univerzalni proceduru, ktera me bude vytvaret frame, nebo
form dle predaneho parametru? Nevim si rady s parametrem XXX viz. dole.
nyni to mam takto:
begin
if ....
MujFrame1 := TMujFrame1.Create(self);
if ....
MujFrame2 := TMujFrame2.Create(self);
end;
moje predstava je:
procedure CreateFrame(Frame:TFrame,XXX);
begin
Frame := XXX.Create(self);
end;
begin
if ....
CreateFrame(MujFrame1,XXX);
if ....
CreateFrame(MujFrame2,XXX);
end;
Diky predem Karel
Odpovedá: Daniel Frantik
2. 9. 2004 13:55
Ahoj,
kazdou takto vytvarenou frame musis mit registrovanou (v
initialization unity dej RegisterClass(XXX) )
Potom:
function CreateComponentByClassName(const aClassName:string;
aOwner:TComponent):TComponent;
var
Cls:TClass;
begin
Cls:=GetClass(aClassName);
if Assigned(Cls) then
Result:=TComponentClass(Cls).Create(aOwner)
else
raise Exception.CreateFmt('Class "%s" not foud in project.);
end;
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz
> [mailto:delphi-l-owner@clexpert.cz] On Behalf Of delphi@mjsoft.cz
> lze udelat univerzalni proceduru, ktera me bude vytvaret frame, nebo
> form dle predaneho parametru? Nevim si rady s parametrem XXX
> procedure CreateFrame(Frame:TFrame,XXX);
> begin
> Frame := XXX.Create(self);
> end;
Odpovedá: Pavel Benacek
2. 9. 2004 13:48
On Thu, 2 Sep 2004 14:20:23 +0200, <delphi@mjsoft.cz> wrote:
> Zdravim,
>
> lze udelat univerzalni proceduru, ktera me bude vytvaret frame, nebo
> form dle predaneho parametru? Nevim si rady s parametrem XXX viz. dole.
>
> nyni to mam takto:
>
> begin
> if ....
> MujFrame1 := TMujFrame1.Create(self);
>
> if ....
> MujFrame2 := TMujFrame2.Create(self);
> end;
>
>
>
> moje predstava je:
>
> procedure CreateFrame(Frame:TFrame,XXX);
> begin
> Frame := XXX.Create(self);
> end;
>
> begin
> if ....
> CreateFrame(MujFrame1,XXX);
>
> if ....
> CreateFrame(MujFrame2,XXX);
> end;
>
>
> Diky predem Karel
>
Ahoj, ja bych to delal asi nasledovne, tedy pokud jsem to spravne pochopil:
type
TFrameClass = class of TFrame;
function CreateFrame(const FrameClassname: ShortString): TFrame;
var
FrameClass: TFrameClass;
begin
FrameClass := TFrameClass(FindClass(FrameClassname));
Result := FrameClass.Create(nil);
end;